#!/bin/bash

# 定义服务目录
SERVICE_DIR="/app/service"

# 检查服务目录是否存在
if [ ! -d "$SERVICE_DIR" ]; then
    echo "错误: 服务目录 $SERVICE_DIR 不存在"
    exit 1
fi

# 列出所有以erdcloud为前缀的文件夹
echo "正在查找 $SERVICE_DIR 下以erdcloud为前缀的文件夹..."
ERDCLOUD_FOLDERS=($(ls -d $SERVICE_DIR/erdcloud-* 2>/dev/null))

# 检查是否找到相关文件夹
if [ ${#ERDCLOUD_FOLDERS[@]} -eq 0 ]; then
    echo "未找到以erdcloud为前缀的文件夹"
    exit 1
fi

# 显示文件夹列表供选择
echo "找到以下文件夹，请输入序号选择:"
for i in "${!ERDCLOUD_FOLDERS[@]}"; do
    echo "$((i+1)). $(basename ${ERDCLOUD_FOLDERS[$i]})"
done

# 读取用户选择的序号
read -p "请输入序号: " SELECTION

# 验证序号是否合法
if ! [[ $SELECTION =~ ^[0-9]+$ ]] || [ $SELECTION -lt 1 ] || [ $SELECTION -gt ${#ERDCLOUD_FOLDERS[@]} ]; then
    echo "错误: 请输入有效的序号"
    exit 1
fi

# 获取选中的文件夹
SELECTED_FOLDER=${ERDCLOUD_FOLDERS[$((SELECTION-1))]}
LOG_DIR="$SELECTED_FOLDER/logs"

# 检查日志目录是否存在
if [ ! -d "$LOG_DIR" ]; then
    echo "错误: 日志目录 $LOG_DIR 不存在"
    exit 1
fi

# 读取要查看的日志行数
read -p "请输入要查看的日志行数: " LINES

# 验证行数是否为正整数
if ! [[ $LINES =~ ^[0-9]+$ ]] || [ $LINES -lt 1 ]; then
    echo "错误: 请输入有效的正整数"
    exit 1
fi

# 查找最新的日志文件
LATEST_LOG=$(ls -lt $LOG_DIR/*.log 2>/dev/null | head -1 | awk '{print $NF}')

# 检查是否找到日志文件
if [ -z "$LATEST_LOG" ]; then
    echo "错误: 在 $LOG_DIR 目录下未找到日志文件"
    exit 1
fi

# 显示日志
echo "正在查看 $(basename $SELECTED_FOLDER) 的最新日志文件 $(basename $LATEST_LOG) 的最后 $LINES 行..."
tail -n $LINES -f "$LATEST_LOG"